package cn.hg.solon.youcan.system.service;

import java.util.List;
import java.util.Map;

import cn.hg.solon.youcan.system.entity.Permission;
import cn.hg.solon.youcan.system.entity.Role;
import cn.hg.solon.youcan.system.entity.User;

/**
 * @author 胡高
 */
public interface PermissionService {

    /**
     * 检测唯一性
     * 
     * @param bean 对象
     * @return true：唯一，false：不唯一
     */
    boolean checkUnique(Permission bean);

    /**
     * 通过ID删除
     * 
     * @param idList ID
     * @return true：成功，false：失败
     */
    boolean delete(Integer id);

    /**
     * 通过ID获取对象
     * 
     * @param id ID值
     * @return 对象
     */
    Permission get(Integer id);

    /**
     * 插入对象
     * 
     * @param bean 对象
     * @return true：成功，false：失败
     */
    boolean insert(Permission bean);

    /**
     * 通过参数Map获取对象列表
     * 
     * @param paraMap 参数Map
     * @return 对象列表
     */
    List<? extends Permission> listBy(Map<String, Object> map);

    /**
     * 通过角色获取对象列表
     * 
     * @param paraMap 角色对象
     * @return 对象列表
     */
    List<? extends Permission> listByRole(Role role);

    /**
     * 通过用户获取对象列表
     * 
     * @param user 用户对象
     * @return 对象列表
     */
    List<? extends Permission> listByUser(User user);

    /**
     * 更新对象
     * 
     * @param bean 对象
     * @return true：成功，false：失败
     */
    boolean update(Permission exist);
}
